// $Id$

// Various forward declarations

#ifndef __BLOCK_TURNAROUND_NEANODE_H__
#define __BLOCK_TURNAROUND_NEANODE_H__

/// function that writes an object reference of an object to a file
int
write_ior_to_file (CORBA::ORB_ptr orb,
                   Block::Turnaround::TurnaroundNEANode_ptr obj,
                   const ACE_TCHAR *ior_filename);


/// returns the stringified representation of the scheduling policy
const char * 
sched_policy_name (int sched_policy);

/// check the priorities supported on this platform
bool
check_supported_priorities (CORBA::ORB_ptr orb);

/// a function to create a child POA with server declared model and thread
/// pools. 
RTPortableServer::POA_ptr
create_poa_with_server_declared_model (RTCORBA::RTORB_ptr rt_orb,
                                       RTPortableServer::POA_ptr parent_poa,
                                       PortableServer::POAManager_ptr poa_manager,
                                       CORBA::Short poa_priority);

/// a function to create a child POA with client declared model and thread
/// pools. 
RTPortableServer::POA_ptr
create_poa_with_client_declared_model (RTCORBA::RTORB_ptr rt_orb,
                                       RTPortableServer::POA_ptr parent_poa,
                                       PortableServer::POAManager_ptr poa_manager,
                                       CORBA::Short poa_priority);

/// create an object reference and publish it externally. In this case we
/// publish it by externalizing the object reference into a string form and
/// writing it into a file.
int
create_and_publish_diag_object (CORBA::ORB_ptr orb,
                                RTPortableServer::POA_ptr poa,
                                Block_Turnaround_TurnaroundNEANode_i *servant,
                                CORBA::Short priority,
                                const ACE_TCHAR *file,
				CORBA::Object_var &object);



#endif /* __BLOCK_TURNAROUND_NEANODE_H__ */
